/*
 * src/include/port/win32/sys/socket.h
 */
#ifndef WIN32_SYS_SOCKET_H
#define WIN32_SYS_SOCKET_H

/*
 * 不幸的是，VC++的<wingdi.h>也定义了ERROR。
 * 为了避免冲突，我们在此包含<windows.h>并立即取消定义ERROR。
 *
 * 注意：不要直接包含<wingdi.h>。这会导致编译错误。
 */
#include <winsock2.h>
#include <ws2tcpip.h>
#include <windows.h>

#undef ERROR
#undef small

/* 恢复旧的ERROR值 */
#ifdef PGERROR
#define ERROR PGERROR
#endif

/*
 * 我们不能使用windows的gai_strerror{AW}函数，因为
 * 它们是在MS头文件中内联定义的。因此我们将使用我们自己的
 */
#undef gai_strerror

#endif							/* WIN32_SYS_SOCKET_H */
